package com.lanou3g.code;

import sun.nio.ch.IOUtil;

import java.io.*;

/**
 * Created by dllo on 18/4/16.
 */
public class Main {
    public static void main(String[] args) {

    }

    public static void copByBuffer(String srcPath, String desPath) {
        File srcFile = new File(srcPath);
        File desFile = new File(desPath);

        FileInputStream fis = null;
        FileOutputStream fos = null;


        BufferedInputStream bis = null;
        BufferedOutputStream bos = null;


        try {
            desFile.createNewFile();

            fis = new FileInputStream(srcFile);
            fos = new FileOutputStream(desFile);
            // BufferedInput /OutputStream 创建的时候需要有
            // 别的字节流

            bis = new BufferedInputStream(fis);
            bos = new BufferedOutputStream(fos);
            int pos = 0;
            byte[] buf = new byte[1024];
            while ((pos = (bis.read(buf))) != -1) {
                bos.write(buf, 0, pos);
            }
            // 在使用BufferedOutputStream 的时候
            // 需要在最后写一句 bos.flush();
            //无论BOS里面的数据满没满
            // 都将里面的数据写到硬盘中
            bos.flush();

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // 只需要关闭bos 和bis
            // 会在bis和bos的close 方法中
            // 自动的关闭fis 和 fos
            IOutils.closeAll(bis, bos);
        }
    }
}
